import { Draw } from "../../../Draw/Draw";
import { contextmenuHandle } from "./contextmenu";
import { IKonva } from "../../../Interface/IKonva";

/**
 * stage 舞台点击事件
 * 为了更好实现右键菜单功能，应该由 konva 实现右键菜单
 * 但是konva 如法识别 contextmenu 因此，直接使用 click 事件，识别左键还是右键
 */
export function stageClick(e: IKonva.Event, draw: Draw) {
  e.cancelBubble = true;

  // konva stage 触发的事件，一定是以canvas为目标
  if ((<HTMLElement>e.evt.target).nodeName !== "CANVAS") return;

  // 判断左键还是右键
  const leftKey = e.evt.button === 0;
  const rightKey = e.evt.button === 2;

  if (leftKey) {
    draw.clearTransformer();
    draw.clearSelected();
    // 还需要清空所有 line 的控制点
    draw.clearLineControl();
  }
  if (rightKey) contextmenuHandle(e, draw, "stage");
}
